#include "ModuleDataWritter.h"

////////////////////////////////////////////////////////////////////////////////
void ModuleDataWritter::init(QCVModuleHandlerInterface * parent)
{
	this->parent=parent;
	win=new QWidget();

	l_path=new QLineEdit(win);
	pb_browse=new QPushButton("...",win);

	layout=new QHBoxLayout(win);
	layout->addWidget(l_path);
	layout->addWidget(pb_browse);

	connect(pb_browse,SIGNAL(clicked()),this,SLOT(s_browse()));
	connect(l_path,SIGNAL(editingFinished()),this,SLOT(s_open()));
}
////////////////////////////////////////////////////////////////////////////////
void ModuleDataWritter::free()
{
	delete win;
}
////////////////////////////////////////////////////////////////////////////////
cv::Mat & ModuleDataWritter::process()
{
	if(file.isOpened())
	{

	}
}
////////////////////////////////////////////////////////////////////////////////
void ModuleDataWritter::setInput(int n,const cv::Mat & m)
{

}
////////////////////////////////////////////////////////////////////////////////
QWidget* ModuleDataWritter::widget()
{
	return win;
}
////////////////////////////////////////////////////////////////////////////////
QString ModuleDataWritter::getName()
{
	return tr("Data Writter");
}
////////////////////////////////////////////////////////////////////////////////
int ModuleDataWritter::nbInputs()
{
	return 1;
}
////////////////////////////////////////////////////////////////////////////////
QString ModuleDataWritter::help(int id)
{
	if(id==-2)
	{
		return trUtf8("Module d'enregistrement de données");
	}
	else if (id==-1)
	{
		return tr("null");
	}
	else if (id==0)
	{
		return tr("data");
	}
}
////////////////////////////////////////////////////////////////////////////////
bool ModuleDataWritter::setParams(QString params)
{
	l_path->setText(params);
}
////////////////////////////////////////////////////////////////////////////////
QString ModuleDataWritter::getParams()
{
	return l_path->text();
}
////////////////////////////////////////////////////////////////////////////////
void ModuleDataWritter::s_browse()
{
	QString path = QFileDialog::getSaveFileName(NULL, tr("Storage Data File"),"data",tr("Images (*.cdata)"));
	if(!path.isEmpty())	
	{	
		l_path->setText(path);
	}
}
////////////////////////////////////////////////////////////////////////////////
void ModuleDataWritter::s_open()
{
	if(file.isOpened())file.release();	
	if(!l_path->text().isEmpty())
	{
		file.open(l_path->text().toAscii().data(),cv::FileStorage::WRITE);
		printf("ok\n");
	}
}
////////////////////////////////////////////////////////////////////////////////
Q_EXPORT_PLUGIN2(ModuleDataWritter_plugin,ModuleDataWritter);
